Skip to content

Feature: WiFi Channel Width + LiveChart2 migration#3462

Merged
mergify[bot] merged 17 commits into
mainfrom
feature/wifi-channel-width-and-livecharts2
May 31, 2026
Merged

Feature: WiFi Channel Width + LiveChart2 migration#3462
mergify[bot] merged 17 commits into
mainfrom
feature/wifi-channel-width-and-livecharts2

Conversation

@BornToBeRoot
Copy link
Copy Markdown
Owner

@BornToBeRoot BornToBeRoot commented May 31, 2026

Changes proposed in this pull request

  • Implement WiFi Channel Width
  • Migrate to LiveChart2

Related issue(s)

Copilot generated summary

Provide a Copilot generated summary of the changes in this pull request.

Copilot summary

This pull request removes all dependencies on the old LiveCharts.Wpf charting library and migrates the Wi-Fi channel chart tooltip functionality to use LiveChartsCore. It introduces a new, richer tooltip for Wi-Fi channel charts, displaying SSID, RSSI, channel, and bandwidth, and extends the Wi-Fi network model to include channel bandwidth information. Several obsolete files and converters are removed, and new supporting classes are added for the updated charting logic.

Migration to LiveChartsCore and Removal of LiveCharts.Wpf:

  • All references to LiveCharts.Wpf are removed from project files, and related converters and tooltip implementations (LvlChartsWiFiChannelTooltip.xaml, .cs, and associated converters) are deleted. [1] [2] [3] [4] [5] [6]

Wi-Fi Channel Chart Tooltip Redesign:

  • A new tooltip control, LiveChartsWiFiChannelTooltip, is added, providing a modern UI for displaying Wi-Fi network details (SSID, RSSI, channel, and bandwidth) using LiveChartsCore. [1] [2]
  • A new data point class, WiFiChannelPoint, is introduced to represent points on the chart, each associated with a specific Wi-Fi network.

Wi-Fi Model Enhancements:

  • The WiFiNetworkInfo model is extended to include a ChannelBandwidth property (in MHz), and logic is added to determine the bandwidth using native APIs or heuristics based on radio/PHY kind. [1] [2] [3]
  • Helper methods in WiFi.cs are made private for encapsulation, and new methods are added for bandwidth estimation. [1] [2] [3]

Localization:

  • The string "Channel width" is added to the localization resources for use in tooltips and UI. [1] [2]

Other:

  • Minor using directives and references are updated in the Wi-Fi model files.

To-Do

Contributing

By submitting this pull request, I confirm the following:

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances the Wi-Fi channel visualization by adding channel bandwidth (width) support and migrates the Wi-Fi channel charts from the legacy LiveCharts.Wpf stack to LiveChartsCore.SkiaSharpView.WPF (LiveCharts2), including a redesigned tooltip and 6 GHz chart handling.

Changes:

  • Add channel bandwidth detection (native wlanapi.dll BSS list parsing + heuristic fallback) and surface it in the Wi-Fi model and UI.
  • Migrate Wi-Fi channel charts to LiveCharts2 with new axes/sections setup, new tooltip control, and 6 GHz split view.
  • Remove old LiveCharts.Wpf tooltip and related converters/dependencies.

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
Source/NETworkManager/Views/WiFiView.xaml.cs Persists/restores inner channel-tab selection across UI rebuilds.
Source/NETworkManager/Views/WiFiView.xaml Migrates charts to LiveCharts2, adds channel width column/menu item, adds 6 GHz split charts.
Source/NETworkManager/ViewModels/WiFiViewModel.cs Replaces LiveCharts.Wpf series/axes with LiveCharts2 setup and series generation including bandwidth trapezoids.
Source/NETworkManager/NETworkManager.csproj Removes LiveCharts.Wpf package reference, keeps LiveCharts2 package.
Source/NETworkManager/Controls/WiFiChannelPoint.cs Adds a chart point type that carries a reference to the originating Wi-Fi network (for tooltip).
Source/NETworkManager/Controls/LvlChartsWiFiChannelTooltip.xaml.cs Removes legacy LiveCharts.Wpf tooltip implementation.
Source/NETworkManager/Controls/LvlChartsWiFiChannelTooltip.xaml Removes legacy LiveCharts.Wpf tooltip XAML.
Source/NETworkManager/Controls/LiveChartsWiFiChannelTooltip.xaml.cs Adds new LiveCharts2 tooltip implementation based on WPF Popup.
Source/NETworkManager/Controls/LiveChartsWiFiChannelTooltip.xaml Adds new tooltip UI template.
Source/NETworkManager.Models/Network/WlanApi.cs Adds native WLAN interop to parse channel bandwidth from 802.11 IEs.
Source/NETworkManager.Models/Network/WiFiNetworkInfo.cs Adds ChannelBandwidth (MHz) to the Wi-Fi network model.
Source/NETworkManager.Models/Network/WiFi.cs Integrates channel bandwidth lookup (native + heuristic) into scan results.
Source/NETworkManager.Localization/Resources/Strings.resx Adds localized string key ChannelWidth.
Source/NETworkManager.Localization/Resources/Strings.Designer.cs Regenerates strongly-typed accessor for ChannelWidth.
Source/NETworkManager.Converters/WiFiDBMReverseConverter.cs Removes obsolete converter used by the legacy tooltip.
Source/NETworkManager.Converters/NETworkManager.Converters.csproj Removes LiveCharts.Wpf package reference from converters project.
Source/NETworkManager.Converters/LvlChartsHeaderConverter.cs Removes obsolete converter used by the legacy tooltip.
Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Source/NETworkManager.Models/Network/WiFi.cs
Comment thread Source/NETworkManager/Views/WiFiView.xaml.cs
Comment thread Source/NETworkManager/ViewModels/WiFiViewModel.cs
Comment thread Source/NETworkManager/Controls/LiveChartsWiFiChannelTooltip.xaml.cs Outdated
Comment thread Source/NETworkManager/Views/WiFiView.xaml Outdated
Comment thread Source/NETworkManager/Views/WiFiView.xaml
Comment thread Source/NETworkManager/Views/WiFiView.xaml Outdated
Comment thread Source/NETworkManager/Views/WiFiView.xaml Outdated
BornToBeRoot and others added 11 commits May 31, 2026 22:56
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 23 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Language not supported

Comment on lines 265 to 272
/// Get the Wi-Fi channel from channel frequency.
/// </summary>
/// <param name="gigahertz">Input like 2.422 or 5.240.</param>
/// <returns>WiFi channel like 3 or 48.</returns>
public static int GetChannelFromChannelFrequency(double gigahertz)
/// <returns>Wi-Fi channel like 3 or 48.</returns>
private static int GetChannelFromChannelFrequency(double gigahertz)
{
return gigahertz switch
{
Comment on lines 1211 to 1214
ConfigurationManager.Current.IsChildWindowOpen = true;

return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 25 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Language not supported

Values = GetChartValues(network, index),
PointGeometry = null,
LineSmoothness = 0
WiFiRadio.GHz2dot4 => (frequencyMHz - 2407) / 5.0,
Comment on lines +40 to +43
/// <summary>
/// The channel bandwidth in MHz (e.g. 20, 40, 80, 160). A value of 0 means unknown.
/// </summary>
public int ChannelBandwidth { get; set; }
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 25 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Language not supported

Comment thread Source/NETworkManager.Models/Network/WlanApi.cs Outdated
@mergify mergify Bot merged commit 1fdceda into main May 31, 2026
5 checks passed
@mergify mergify Bot deleted the feature/wifi-channel-width-and-livecharts2 branch May 31, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to LiveCharts2

2 participants